package cn.com.twoke.application.game.mario.game.entity;

import cn.com.twoke.application.game.mario.core.ecs.entity.Entity;

import java.util.function.Consumer;

/**
 * 实体构建者
 * @param <T> 构建者
 */
public interface EntityBuilder<T extends EntityBuilder<T>> {

    /**
     * x轴开始位置
     * @param x
     * @return
     */
    T startX(int x);

    /**
     * y轴开始位置
     * @param y
     * @return
     */
    T startY(int y);

    /**
     * 扩展操作
     * @param extend
     * @return
     */
    T extend(Consumer<Entity> extend);

    /**
     * 构建
     * @return
     */
    Entity build();

}
